/*
 *  System.h
 *  vorpal
 *
 *  Created by rwebb on 4/05/08.
 *
 */

#ifndef VORPAL_SYSTEM_H
#define VORPAL_SYSTEM_H

#include "Objects.h"

namespace Vorpal{

	class System : public Unique{
	public:
		System() : Unique("System", true){ 
			Set(msg_number, Handle<Object>(new Object())); 
			Set(msg_string, Handle<Object>(new Object()));
			Set(msg_object, Handle<Object>(new Object()));
			Set(msg_file, Handle<Object>(new Object()));
			Set(msg_process, Handle<Object>(new Object()));			
		}
		
		virtual bool Receive(Message msg, uint32_t numArgs, VM *vm);
				
		virtual void AddArgument(const string &newArg){
			args.push_back(newArg);
		}
				
	protected:
		virtual ~System(){ }

	private:
		vector< string > args;
	};
}

#endif
